home *** CD-ROM | disk | FTP | other *** search
- TITLE Square Root By Odd Numbers (ANS41.ASM)
- PAGE ,132
- OUR_CODE SEGMENT PARA 'CODE'
- PUBLIC SR32
- SR32 PROC FAR
- ASSUME CS:OUR_CODE
- PUSH AX ;Save original number
- PUSH DX
- PUSH CX ; and CX on stack
- MOV BX,1 ;To start, (BX) = 1
- SUB CX,CX ; and (CX) = 0
- AGAIN: SUB AX,BX ;Subtract next odd no. from AX
- SBB DX,0 ; and DX
- JC DONE ;Did sub. create a borrow?
- INC CX ; No. Increment the square root,
- ADD BX,2 ; calculate the next odd no.
- JMP AGAIN ; then go make next subtraction
- DONE: MOV BX,CX ; Yes. Transfer result to BX
- POP CX ; and restore the registers
- POP DX
- POP AX
- RET
- SR32 ENDP
- OUR_CODE ENDS
- END SR32
-